package com.ys.tdm.controller;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.ys.tdm.bean.user.User;

import net.sf.json.JSONObject;

/**
 * 定义一些公共方法的controller
 * @Title:
 * @Description:
 * @Author:wentaoxiang
 * @Since:2016年1月14日 上午9:32:00
 * @Version:1.1.0
 * @Copyright:Copyright (c) 浙江蘑菇加电子商务有限公司 2015 ~ 2016 版权所有
 */
public class BaseController {

	public final int SUCCESS = 1;
	public final int ERROR = 0;
	public final int UNPREMISSION = 2;
	//不允许
	public final int UNPER = 2;
	
	public static final Integer LAYUI_NO = 1;
	public static final Integer LAYUI_YES = 0;
	
	public static final String CODE_CREATOR = "codeCreator";
	public static final String COMPANY_NAME = "companyName";
	
	
	public static final String USER_ID = "userId";
	public static final String STATUS = "status";
	public static final String WARN = "warn";
	public static final String MESSAGE = "message";
	public static final String CONTENT = "content";
	public static final String ERROR_404 = "redirect:/error404.shtml";
	public static final String ERROR_500 = "redirect:/error500.shtml";
	



	/**
	 * @Titile:AJAX输出
	 * @Author:T.J
	 * @Since:2014年4月17日 上午10:37:28
	 * @param content
	 * @param type
	 * @param response
	 * @return 返回null
	 */
	public String ajax(String content, String type, HttpServletResponse response) {
		try {
			response.setContentType(type + ";charset=UTF-8");
			response.setHeader("Pragma", "No-cache");
			response.setHeader("Cache-Control", "no-cache");
			response.setDateHeader("Expires", 0);
			response.getWriter().write(content);
			response.getWriter().flush();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	/**
	 * @Titile:AJAX输出文本
	 * @Author:T.J
	 * @Since:2014年4月17日 上午10:38:46
	 * @param text
	 * @param response
	 * @return 返回null
	 */
	public String ajaxText(String text, HttpServletResponse response) {
		return ajax(text, "text/plain", response);
	}
	
	/**
	 * 描述：得到登录用户信息[通过session调用权限接口取得登录用户信息]
	 * @return
	 */
	public User getLoginUser(HttpServletRequest request){
		
		User  user = (User)request.getSession().getAttribute("userInfor");
	
		if(null != user){
			return user;
		}else{
			return null;	
		}
	}
	
	/**
	 * @Titile:AJAX输出HTML
	 * @Author:T.J
	 * @Since:2014年4月17日 上午10:39:05
	 * @param html
	 * @param response
	 * @return 返回null
	 */
	public String ajaxHtml(String html, HttpServletResponse response) {
		return ajax(html, "text/html", response);
	}

	/**
	 * @Titile:AJAX输出XML
	 * @Author:T.J
	 * @Since:2014年4月17日 上午10:39:33
	 * @param xml
	 * @param response
	 * @return 返回null
	 */
	public String ajaxXml(String xml, HttpServletResponse response) {
		return ajax(xml, "text/xml", response);
	}

	/**
	 * @Titile:根据字符串输出JSON
	 * @Author:T.J
	 * @Since:2014年4月17日 上午10:39:51
	 * @param jsonString
	 * @param response
	 * @return 返回null
	 */
	public String ajaxJson(String jsonString, HttpServletResponse response) {
		return ajax(jsonString, "text/html", response);
	}

	/**
	 * @Titile:根据Map输出JSON
	 * @Author:T.J
	 * @Since:2014年4月17日 上午10:40:03
	 * @param jsonMap
	 * @param response
	 * @return 返回null
	 */
	public String ajaxJson(Map<String, String> jsonMap, HttpServletResponse response) {
		JSONObject jsonObject = JSONObject.fromObject(jsonMap);
		return ajax(jsonObject.toString(), "text/html", response);
	}

	/**
	 * @Titile:设置页面不缓存
	 * @Author:T.J
	 * @Since:2014年4月17日 上午10:42:59
	 * @param response
	 */
	public void setResponseNoCache(HttpServletResponse response) {
		response.setHeader("progma", "no-cache");
		response.setHeader("Cache-Control", "no-cache");
		response.setHeader("Cache-Control", "no-store");
		response.setDateHeader("Expires", 0);
	}
	

}